MongoDB
MongoDB 是一种NoSQL(非关系型数据库)数据库,特别适合处理海量数据的存储和查询。与传统的关系型数据库(如 MySQL、PostgreSQL 等)不同,MongoDB 不使用表格和行的形式,而是以文档的形式存储数据,类似于 JSON 的结构。
MongoDB 的主要特点:
- 文档存储模型:
• 数据以键值对的形式存储在文档(document)中,类似于 JSON 对象,每个文档是一个自包含的数据单元。MongoDB 使用的是 BSON(Binary JSON)格式,在保持 JSON 可读性的基础上,支持更多的数据类型和高效的存储。
- 灵活的模式(Schema):
• 传统的关系型数据库需要预先定义表的结构(即模式),而 MongoDB 则没有固定的模式,这意味着你可以在同一个集合(相当于关系型数据库中的表)中存储不同结构的文档。这种模式的灵活性极大提高了开发的自由度。
- 分布式架构:
• MongoDB 支持数据分片(Sharding),可以水平扩展,将数据分散存储在不同的服务器或节点上,以提高性能和可扩展性。
- 高可用性和自动故障转移:
• MongoDB 提供了自动的副本集(Replica Set),这是一个高可用性功能。副本集中的主节点(primary)负责处理所有的写操作,而副节点(secondary)作为备份,并在主节点出现故障时自动提升为主节点,确保服务的连续性。
- 强大的查询功能:
• MongoDB 支持丰富的查询语言,不仅可以进行简单的CRUD(创建、读取、更新、删除)操作,还可以执行复杂的查询、聚合操作和文本搜索。
- 索引支持:
• 为了提升查询效率,MongoDB 支持多种类型的索引,包括单字段索引、复合索引、地理空间索引和全文索引等。
MongoDB 的基本组成部分:
-
数据库(Database):MongoDB 实例可以包含多个数据库,每个数据库又包含多个集合。
-
集合(Collection):类似于关系型数据库的表,一个集合包含若干文档,文档结构可以不一致。
-
文档(Document):MongoDB 中的基本数据单元,类似于关系型数据库的行,但文档是一个结构化的数据,可以包含嵌套的子文档和数组。